iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0

今天我們要介紹的是隨機森林,所謂的隨機森林就是指將多個決策樹組合而成並且加入隨機的分配去訓練資料,而所有的決策樹都是獨立的,簡單來說每個決策樹最後的結果都會是互相獨立的,而隨機森林就像是多數決,也就是多顆決策樹的答案會是隨機森林的答案。

隨機森林

我們將用iris的資料集去做簡單的分析。

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
import seaborn as sns 
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix

首先我們先將需要用到的套件載入。

pip3 install 套件名稱

如果有缺少的套件則可以在終端機上下載缺少的套件。

data = datasets.load_iris()
x = pd.DataFrame(data['data'],columns = data["feature_names"])
print(x)
y = pd.DataFrame(data["target"],columns = ["tar"])
print(y)
data_iris = pd.concat([x,y], axis = 1)
print(data_iris)
data_iris = data_iris[["sepal length (cm)","petal length (cm)","tar"]]
print(data_iris)
data_iris = data_iris[data_iris['tar'].isin([0,1])]
print(data_iris)

接下來我們將iris資料集載入,並將資料合併。

X_train, X_test, Y_train, Y_test = train_test_split(data_iris[["sepal length (cm)","petal length (cm)"]],data_iris["tar"],test_size=0.3, random_state=0)

接下來我們將資料分成測試與訓練集。

t = 5
tra = RandomForestClassifier(max_depth = 2, n_estimators = t,max_features = 1)
tra.fit(X_train , Y_train) 
predict = tra.predict(X_test)

接下來我們訓練隨機森林的模型。

print(confusion_matrix(Y_test,predict))
print(classification_report(Y_test,predict))

接下來我們將用模型預測結果。

以上就是簡易的隨機森林做法。


上一篇
Day 18 決策樹
下一篇
Day 20 K-近鄰演算法(KNN)
系列文
新手也想開始認識機器學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言